@use 'sass:map';
@use 'config.scss' as *;
$b: null;
$name: null;
// 生成block
@mixin b($block) {
  $b: '.' + $namespace + $connect + $block !global;
  #{$b} {
    @content;
  }
}

// 生成elem
@mixin e($elem, $root: true) {
  $name: $b + $element-connect + $elem;
  @if $root {
    @at-root {
      #{$name} {
        @content;
      }
    }
  } @else {
    #{$name} {
      @content;
    }
  }
}

// 生成修改器
@mixin m($attr, $value: '') {
  $modifier: $b + $modifier-connect + $attr + $modifier-value-connect + $value;
  @at-root {
    #{$modifier} {
      @content;
    }
  }
}

// 状态
@mixin s($attrs, $and: true) {
  $state: '';
  @each $attr in $attrs {
    $state: if($and, '&', '') + '.' + $state-prefix + $attr + ',' + $state;
  }
  #{$state} {
    @content;
  }
}
